﻿using System;
using SharpSqlAnalyzer.util;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x0200031B RID: 795
	public class TObjectName : TParseTreeNode
	{
		// Token: 0x06001C48 RID: 7240 RVA: 0x00330BE2 File Offset: 0x0032EDE2
		public TObjectName()
		{
		}

		// Token: 0x06001C49 RID: 7241 RVA: 0x00330BFD File Offset: 0x0032EDFD
		public TObjectName(TSourceToken st, EDbObjectType dbOjectType)
		{
			this._partToken = st;
			base.startToken = st;
			base.endToken = st;
			this.DbObjectType = this._dbObjectType;
		}

		// Token: 0x06001C4A RID: 7242 RVA: 0x00330C3C File Offset: 0x0032EE3C
		public TObjectName(EDbObjectType dbOjectType, TSourceToken st)
		{
			base.startToken = st;
			base.endToken = st;
			EDbObjectType dbObjectType = this._dbObjectType;
			if (dbObjectType - EDbObjectType.collation <= 1)
			{
				this._dbObjectType = dbOjectType;
				this._objectToken = st;
				return;
			}
			this._partToken = st;
			this.DbObjectType = this._dbObjectType;
		}

		// Token: 0x06001C4B RID: 7243 RVA: 0x00330CA0 File Offset: 0x0032EEA0
		public TObjectName(TSourceToken stObject, TSourceToken stPart, EDbObjectType dbOjectType)
		{
			this._partToken = stPart;
			this._objectToken = stObject;
			base.startToken = stObject;
			base.endToken = stPart;
			this.DbObjectType = this._dbObjectType;
		}

		// Token: 0x06001C4C RID: 7244 RVA: 0x00330CF0 File Offset: 0x0032EEF0
		public TObjectName(EDbObjectType dbOjectType, TSourceToken stPart, TSourceToken stObject)
		{
			this._partToken = stPart;
			this._objectToken = stObject;
			base.startToken = stObject;
			base.endToken = stPart;
			this.DbObjectType = this._dbObjectType;
		}

		// Token: 0x06001C4D RID: 7245 RVA: 0x00330D40 File Offset: 0x0032EF40
		public override string ToString()
		{
			string text = base.ToString();
			if (text != null)
			{
				return text;
			}
			if (this.PartToken != null)
			{
				return this.PartToken.ToString();
			}
			if (this.ObjectToken != null)
			{
				return this.ObjectToken.ToString();
			}
			return null;
		}

		// Token: 0x1700067B RID: 1659
		// (get) Token: 0x06001C4E RID: 7246 RVA: 0x00330D82 File Offset: 0x0032EF82
		// (set) Token: 0x06001C4F RID: 7247 RVA: 0x00330D8A File Offset: 0x0032EF8A
		public TColumnDefinition linkedColumnDefinition
		{
			get
			{
				return this._linkedColumnDef;
			}
			set
			{
				this._linkedColumnDef = value;
			}
		}

		// Token: 0x06001C50 RID: 7248 RVA: 0x00330D93 File Offset: 0x0032EF93
		public void setObjectType(int i)
		{
			this.objectType = i;
		}

		// Token: 0x06001C51 RID: 7249 RVA: 0x00330D9C File Offset: 0x0032EF9C
		public void setIndirection(TIndirection i)
		{
			this.Indirection = i;
		}

		// Token: 0x1700067C RID: 1660
		// (get) Token: 0x06001C53 RID: 7251 RVA: 0x00330DAE File Offset: 0x0032EFAE
		// (set) Token: 0x06001C52 RID: 7250 RVA: 0x00330DA5 File Offset: 0x0032EFA5
		public virtual EQuoteType QuoteType
		{
			get
			{
				if (this.ToString().StartsWith("[", StringComparison.Ordinal))
				{
					return EQuoteType.squareBracket;
				}
				if (this.ToString().StartsWith("\"", StringComparison.Ordinal))
				{
					return EQuoteType.doubleQuote;
				}
				return this.quoteType;
			}
			set
			{
				this.quoteType = value;
			}
		}

		// Token: 0x1700067D RID: 1661
		// (get) Token: 0x06001C55 RID: 7253 RVA: 0x00330DE9 File Offset: 0x0032EFE9
		// (set) Token: 0x06001C54 RID: 7252 RVA: 0x00330DE0 File Offset: 0x0032EFE0
		public virtual TResultColumn SourceColumn
		{
			get
			{
				return this.sourceColumn;
			}
			set
			{
				this.sourceColumn = value;
			}
		}

		// Token: 0x06001C56 RID: 7254 RVA: 0x00330DF4 File Offset: 0x0032EFF4
		public virtual bool isPrefixedThisTable(TTable pTable)
		{
			bool flag = false;
			if (this.TableString.Length == 0)
			{
				return false;
			}
			if (pTable.AliasName.Length > 0)
			{
				flag = pTable.AliasName.ToString().Equals(this.TableString.ToString(), StringComparison.CurrentCultureIgnoreCase);
			}
			if (flag)
			{
				return true;
			}
			if (pTable.BaseTable || pTable.CTEName)
			{
				flag = this.TableString.Equals(pTable.Name, StringComparison.CurrentCultureIgnoreCase);
			}
			return flag;
		}

		// Token: 0x1700067E RID: 1662
		// (get) Token: 0x06001C57 RID: 7255 RVA: 0x00330E66 File Offset: 0x0032F066
		public virtual bool Prefixed
		{
			get
			{
				return this.TableString.Length > 0;
			}
		}

		// Token: 0x06001C58 RID: 7256 RVA: 0x00330E78 File Offset: 0x0032F078
		public virtual bool isValidColumnName(EDbVendor pDBVendor)
		{
			bool result = true;
			if (this.ObjectType == 10)
			{
				return false;
			}
			if (this.ObjectType == 2)
			{
				return false;
			}
			if (pDBVendor == EDbVendor.dbvsybase)
			{
				TSourceToken partToken = this.PartToken;
				if (partToken != null && partToken.tokentype == ETokenType.ttdqstring)
				{
					if (partToken.ToString()[1] >= '0' && partToken.ToString()[1] <= '9')
					{
						result = false;
					}
					else if (partToken.ToString().Length == 2)
					{
						result = false;
					}
					else if (partToken.ToString().Substring(1, partToken.ToString().Length - 1 - 1).Trim().Length == 0)
					{
						result = false;
					}
				}
			}
			if (this.PartToken != null && this.PartToken.tokentype == ETokenType.ttkeyword)
			{
				if (pDBVendor != EDbVendor.dbvmssql)
				{
					if (pDBVendor == EDbVendor.dbvsybase)
					{
						result = !keywordChecker.isKeyword(this.PartToken.ToString(), EDbVendor.dbvsybase, "15.7", true);
					}
				}
				else
				{
					result = TLexerMssql.canBeColumnName(this.PartToken.tokencode);
				}
			}
			if (this.ToString().StartsWith("@", StringComparison.Ordinal) || (this.ToString().StartsWith(":", StringComparison.Ordinal) && this.ToString().IndexOf(".") < 0))
			{
				this.ObjectType = -1;
				result = false;
			}
			if (pDBVendor == EDbVendor.dbvoracle)
			{
				if (string.Compare(this.ColumnNameOnly, "rowid", StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(this.ColumnNameOnly, "sysdate", StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(this.ColumnNameOnly, "rownum", StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(this.ColumnNameOnly, "level", StringComparison.CurrentCultureIgnoreCase) == 0)
				{
					this.ObjectType = -1;
					result = false;
				}
				else if (string.Compare(this.ColumnNameOnly, "nextval", StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(this.ColumnNameOnly, "currval", StringComparison.CurrentCultureIgnoreCase) == 0)
				{
					this.ObjectType = 29;
					this.DbObjectType = EDbObjectType.sequence;
					result = false;
				}
			}
			else if (pDBVendor == EDbVendor.dbvmssql)
			{
				if (string.Compare(this.ColumnNameOnly, "system_user") == 0)
				{
					result = false;
				}
			}
			else if (pDBVendor == EDbVendor.dbvmysql)
			{
				if (this.String.IndexOf("\"") == 0)
				{
					result = false;
				}
			}
			else if (pDBVendor == EDbVendor.dbvteradata && (string.Compare(this.ColumnNameOnly, "account", StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(this.ColumnNameOnly, "current_date", StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(this.ColumnNameOnly, "current_role", StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(this.ColumnNameOnly, "current_time", StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(this.ColumnNameOnly, "current_user", StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(this.ColumnNameOnly, "current_timestamp", StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(this.ColumnNameOnly, "database", StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(this.ColumnNameOnly, "date", StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(this.ColumnNameOnly, "profile", StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(this.ColumnNameOnly, "role", StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(this.ColumnNameOnly, "session", StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(this.ColumnNameOnly, "time", StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(this.ColumnNameOnly, "user", StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(this.ColumnNameOnly, "sysdate", StringComparison.CurrentCultureIgnoreCase) == 0))
			{
				result = false;
			}
			return result;
		}

		// Token: 0x1700067F RID: 1663
		// (get) Token: 0x06001C5A RID: 7258 RVA: 0x003311C0 File Offset: 0x0032F3C0
		// (set) Token: 0x06001C59 RID: 7257 RVA: 0x003311B7 File Offset: 0x0032F3B7
		public virtual TTable SourceTable
		{
			get
			{
				return this.sourceTable;
			}
			set
			{
				this.sourceTable = value;
			}
		}

		// Token: 0x06001C5B RID: 7259 RVA: 0x003311C8 File Offset: 0x0032F3C8
		public virtual void TObjectName_Renamed()
		{
		}

		// Token: 0x17000680 RID: 1664
		// (set) Token: 0x06001C5C RID: 7260 RVA: 0x003311CA File Offset: 0x0032F3CA
		private TSourceToken ColumnTokenOfPositionalParameters
		{
			set
			{
				this._objectToken = this._partToken;
				this._partToken = value;
			}
		}

		// Token: 0x17000681 RID: 1665
		// (get) Token: 0x06001C5D RID: 7261 RVA: 0x003311DF File Offset: 0x0032F3DF
		public virtual bool Subscripts
		{
			get
			{
				return this.subscripts;
			}
		}

		// Token: 0x17000682 RID: 1666
		// (get) Token: 0x06001C5F RID: 7263 RVA: 0x00331354 File Offset: 0x0032F554
		// (set) Token: 0x06001C5E RID: 7262 RVA: 0x003311E8 File Offset: 0x0032F3E8
		public virtual TIndirection Indirection
		{
			get
			{
				return this._indirection;
			}
			set
			{
				if (value == null)
				{
					return;
				}
				this._indirection = value;
				if (this.ObjectType != 61)
				{
					if (value.RealIndices)
					{
						if (value.Indices.Count == 1)
						{
							this.subscripts = true;
							return;
						}
						if (value.Indices.Count >= 2 && !value.Indices[0].RealIndices)
						{
							this.PartTokenOfIndirection = value.Indices[0].AttributeName.PartToken;
							this.subscripts = true;
							this._indirection.Indices.RemoveAt(0);
							return;
						}
					}
					else
					{
						if (value.Indices.Count == 1)
						{
							this.PartTokenOfIndirection = value.Indices[0].AttributeName.PartToken;
							return;
						}
						if (value.Indices.Count == 2)
						{
							this._schemaToken = this._partToken;
							this._schemaToken.DbObjType = EDbObjectType.schema;
							this._objectToken = value.Indices[0].AttributeName.PartToken;
							this._objectToken.DbObjType = EDbObjectType.table;
							this._partToken = value.Indices[1].AttributeName.PartToken;
							this._partToken.DbObjType = EDbObjectType.column;
						}
					}
					return;
				}
				if (value.RealIndices)
				{
					this.subscripts = true;
					return;
				}
				this.ColumnTokenOfPositionalParameters = value.Indices[0].AttributeName.PartToken;
			}
		}

		// Token: 0x17000683 RID: 1667
		// (set) Token: 0x06001C60 RID: 7264 RVA: 0x0033135C File Offset: 0x0032F55C
		private TSourceToken PartTokenOfIndirection
		{
			set
			{
				this.parseTablename();
				this._partToken = value;
				this._partToken.DbObjType = EDbObjectType.column;
			}
		}

		// Token: 0x17000684 RID: 1668
		// (get) Token: 0x06001C62 RID: 7266 RVA: 0x00331380 File Offset: 0x0032F580
		// (set) Token: 0x06001C61 RID: 7265 RVA: 0x00331377 File Offset: 0x0032F577
		public virtual TSourceToken PropertyToken
		{
			get
			{
				return this.propertyToken;
			}
			set
			{
				this.propertyToken = value;
			}
		}

		// Token: 0x17000685 RID: 1669
		// (get) Token: 0x06001C63 RID: 7267 RVA: 0x00331388 File Offset: 0x0032F588
		// (set) Token: 0x06001C64 RID: 7268 RVA: 0x00331390 File Offset: 0x0032F590
		public virtual TSourceToken Atsign
		{
			get
			{
				return this.atsign;
			}
			set
			{
				this.atsign = value;
			}
		}

		// Token: 0x17000686 RID: 1670
		// (get) Token: 0x06001C65 RID: 7269 RVA: 0x00331399 File Offset: 0x0032F599
		public virtual TSourceToken MethodToken
		{
			get
			{
				return this.methodToken;
			}
		}

		// Token: 0x17000687 RID: 1671
		// (get) Token: 0x06001C66 RID: 7270 RVA: 0x003313A1 File Offset: 0x0032F5A1
		public virtual TSourceToken ServerToken
		{
			get
			{
				return this.serverToken;
			}
		}

		// Token: 0x17000688 RID: 1672
		// (get) Token: 0x06001C67 RID: 7271 RVA: 0x003313A9 File Offset: 0x0032F5A9
		// (set) Token: 0x06001C68 RID: 7272 RVA: 0x003313B1 File Offset: 0x0032F5B1
		public virtual TSourceToken Exclamationmark
		{
			get
			{
				return this.exclamationmark;
			}
			set
			{
				this.exclamationmark = value;
			}
		}

		// Token: 0x17000689 RID: 1673
		// (get) Token: 0x06001C69 RID: 7273 RVA: 0x003313BA File Offset: 0x0032F5BA
		// (set) Token: 0x06001C6A RID: 7274 RVA: 0x003313C2 File Offset: 0x0032F5C2
		public virtual TObjectName Dblink
		{
			get
			{
				return this.dblink;
			}
			set
			{
				this.dblink = value;
			}
		}

		// Token: 0x1700068A RID: 1674
		// (get) Token: 0x06001C6B RID: 7275 RVA: 0x003313CB File Offset: 0x0032F5CB
		public virtual TSourceToken DatabaseToken
		{
			get
			{
				return this.databaseToken;
			}
		}

		// Token: 0x1700068B RID: 1675
		// (get) Token: 0x06001C6D RID: 7277 RVA: 0x003313DC File Offset: 0x0032F5DC
		// (set) Token: 0x06001C6C RID: 7276 RVA: 0x003313D3 File Offset: 0x0032F5D3
		public virtual bool TableDetermined
		{
			get
			{
				return this.tableDetermined;
			}
			set
			{
				this.tableDetermined = value;
			}
		}

		// Token: 0x06001C6E RID: 7278 RVA: 0x003313E4 File Offset: 0x0032F5E4
		public virtual void attributesToPropertyToken(TObjectNameList attributes)
		{
			if (attributes.size() == 1)
			{
				this.propertyToken = attributes.getObjectName(0).PartToken;
			}
		}

		// Token: 0x1700068C RID: 1676
		// (get) Token: 0x06001C70 RID: 7280 RVA: 0x0033140A File Offset: 0x0032F60A
		// (set) Token: 0x06001C6F RID: 7279 RVA: 0x00331401 File Offset: 0x0032F601
		public virtual TObjectNameList Attributes
		{
			get
			{
				return this.attributes;
			}
			set
			{
				this.attributes = value;
			}
		}

		// Token: 0x1700068D RID: 1677
		// (get) Token: 0x06001C72 RID: 7282 RVA: 0x003317F9 File Offset: 0x0032F9F9
		// (set) Token: 0x06001C71 RID: 7281 RVA: 0x00331414 File Offset: 0x0032F614
		public virtual int ObjectType
		{
			get
			{
				return this.objectType;
			}
			set
			{
				this.objectType = value;
				int num = this.ObjectType;
				switch (num)
				{
				case 1:
					this._dbObjectType = EDbObjectType.column;
					this._partToken.DbObjType = this._dbObjectType;
					return;
				case 2:
					if (this._objectToken == null && this._partToken != null)
					{
						this.parseObjectName();
					}
					this._dbObjectType = EDbObjectType.column_alias;
					this._objectToken.DbObjType = this._dbObjectType;
					return;
				case 3:
				case 6:
				case 8:
					this.parseTablename();
					this._dbObjectType = EDbObjectType.table;
					this._objectToken.DbObjType = this._dbObjectType;
					return;
				case 4:
					this.parseObjectName();
					this._dbObjectType = EDbObjectType.table_alias;
					this._objectToken.DbObjType = this._dbObjectType;
					return;
				case 5:
					this.parseTablename();
					this._dbObjectType = EDbObjectType.cte;
					this._objectToken.DbObjType = this._dbObjectType;
					return;
				case 7:
					break;
				case 9:
					this.parseObjectName();
					this._dbObjectType = EDbObjectType.parameter;
					this._objectToken.DbObjType = this._dbObjectType;
					return;
				case 10:
					this.parseObjectName();
					this._dbObjectType = EDbObjectType.variable;
					this._objectToken.DbObjType = this._dbObjectType;
					return;
				case 11:
					this.parseColumnMethodName();
					this._partToken.DbObjType = EDbObjectType.column;
					this._dbObjectType = EDbObjectType.method;
					this.methodToken.DbObjType = this._dbObjectType;
					return;
				case 12:
					this.parseFunctionName();
					this._dbObjectType = EDbObjectType.procedure;
					this._objectToken.DbObjType = this._dbObjectType;
					return;
				case 13:
					this.parseFunctionName();
					this._dbObjectType = EDbObjectType.function;
					this._objectToken.DbObjType = this._dbObjectType;
					return;
				case 14:
					this.parseObjectName();
					this._dbObjectType = EDbObjectType.label;
					this._objectToken.DbObjType = this._dbObjectType;
					return;
				case 15:
					this.parseObjectName();
					this._dbObjectType = EDbObjectType.index;
					this._objectToken.DbObjType = this._dbObjectType;
					return;
				case 16:
					this.parseObjectName();
					this._dbObjectType = EDbObjectType.materializedView;
					this._objectToken.DbObjType = this._dbObjectType;
					return;
				case 17:
					this.parseObjectName();
					this._dbObjectType = EDbObjectType.cursor;
					this._objectToken.DbObjType = this._dbObjectType;
					return;
				case 18:
					this.parseObjectName();
					this._dbObjectType = EDbObjectType.view;
					this._objectToken.DbObjType = this._dbObjectType;
					return;
				case 19:
					this.parseObjectName();
					this._dbObjectType = EDbObjectType.constraint;
					this._objectToken.DbObjType = this._dbObjectType;
					return;
				case 20:
					this._dbObjectType = EDbObjectType.property;
					this.propertyToken.DbObjType = this._dbObjectType;
					return;
				case 21:
					this.parseObjectName();
					this._dbObjectType = EDbObjectType.transaction;
					this._objectToken.DbObjType = this._dbObjectType;
					return;
				case 22:
					this.parseObjectName();
					this._dbObjectType = EDbObjectType.database;
					this._objectToken.DbObjType = this._dbObjectType;
					return;
				case 23:
					this.parseObjectName();
					return;
				case 24:
					this.parseObjectName();
					this._dbObjectType = EDbObjectType.trigger;
					this._objectToken.DbObjType = this._dbObjectType;
					break;
				case 25:
					this.parseObjectName();
					this._dbObjectType = EDbObjectType.alias;
					this._objectToken.DbObjType = this._dbObjectType;
					return;
				case 26:
					this._dbObjectType = EDbObjectType.attribute;
					this._partToken.DbObjType = this._dbObjectType;
					return;
				case 27:
					this.parseObjectName();
					this._dbObjectType = EDbObjectType.user_defined_type;
					this._objectToken.DbObjType = this._dbObjectType;
					return;
				case 28:
					this.parseObjectName();
					this._dbObjectType = EDbObjectType.plsql_package;
					this._objectToken.DbObjType = this._dbObjectType;
					return;
				case 29:
					this.parseObjectName();
					this._dbObjectType = EDbObjectType.sequence;
					this._objectToken.DbObjType = this._dbObjectType;
					return;
				default:
					if (num != 72)
					{
						return;
					}
					this.parseTablename();
					this._dbObjectType = EDbObjectType.library;
					this._objectToken.DbObjType = this._dbObjectType;
					return;
				}
			}
		}

		// Token: 0x1700068E RID: 1678
		// (get) Token: 0x06001C73 RID: 7283 RVA: 0x00331801 File Offset: 0x0032FA01
		// (set) Token: 0x06001C74 RID: 7284 RVA: 0x0033180C File Offset: 0x0032FA0C
		public virtual EDbObjectType DbObjectType
		{
			get
			{
				return this._dbObjectType;
			}
			set
			{
				this._dbObjectType = value;
				EDbObjectType dbObjectType = this._dbObjectType;
				if (dbObjectType == EDbObjectType.column)
				{
					this.parseColumnName();
					return;
				}
				if (dbObjectType == EDbObjectType.function)
				{
					this.parseFunctionName();
					return;
				}
				if (dbObjectType != EDbObjectType.table)
				{
					return;
				}
				this.parseTablename();
			}
		}

		// Token: 0x1700068F RID: 1679
		// (get) Token: 0x06001C76 RID: 7286 RVA: 0x00331853 File Offset: 0x0032FA53
		// (set) Token: 0x06001C75 RID: 7285 RVA: 0x0033184A File Offset: 0x0032FA4A
		public virtual ESqlClause Location
		{
			get
			{
				return this.location;
			}
			set
			{
				this.location = value;
			}
		}

		// Token: 0x17000690 RID: 1680
		// (get) Token: 0x06001C77 RID: 7287 RVA: 0x0033185B File Offset: 0x0032FA5B
		// (set) Token: 0x06001C78 RID: 7288 RVA: 0x00331863 File Offset: 0x0032FA63
		public virtual TSourceToken ObjectToken
		{
			get
			{
				return this._objectToken;
			}
			set
			{
				this._objectToken = value;
			}
		}

		// Token: 0x17000691 RID: 1681
		// (get) Token: 0x06001C79 RID: 7289 RVA: 0x0033186C File Offset: 0x0032FA6C
		// (set) Token: 0x06001C7A RID: 7290 RVA: 0x00331874 File Offset: 0x0032FA74
		public virtual TSourceToken PartToken
		{
			get
			{
				return this._partToken;
			}
			set
			{
				this._partToken = value;
			}
		}

		// Token: 0x17000692 RID: 1682
		// (get) Token: 0x06001C7B RID: 7291 RVA: 0x0033187D File Offset: 0x0032FA7D
		// (set) Token: 0x06001C7C RID: 7292 RVA: 0x00331885 File Offset: 0x0032FA85
		public virtual TSourceToken SchemaToken
		{
			get
			{
				return this._schemaToken;
			}
			set
			{
				this._schemaToken = value;
			}
		}

		// Token: 0x17000693 RID: 1683
		// (get) Token: 0x06001C7D RID: 7293 RVA: 0x0033188E File Offset: 0x0032FA8E
		public virtual string ServerString
		{
			get
			{
				if (this.ServerToken != null)
				{
					return this.ServerToken.ToString();
				}
				return "";
			}
		}

		// Token: 0x17000694 RID: 1684
		// (get) Token: 0x06001C7E RID: 7294 RVA: 0x003318A9 File Offset: 0x0032FAA9
		public virtual string DatabaseString
		{
			get
			{
				if (this.DatabaseToken != null)
				{
					return this.DatabaseToken.ToString();
				}
				return "";
			}
		}

		// Token: 0x17000695 RID: 1685
		// (get) Token: 0x06001C7F RID: 7295 RVA: 0x003318C4 File Offset: 0x0032FAC4
		public virtual string SchemaString
		{
			get
			{
				if (this._schemaToken != null)
				{
					return this._schemaToken.astext;
				}
				return "";
			}
		}

		// Token: 0x17000696 RID: 1686
		// (get) Token: 0x06001C80 RID: 7296 RVA: 0x003318DF File Offset: 0x0032FADF
		public virtual TSourceToken TableToken
		{
			get
			{
				if (this._objectToken == null)
				{
					return null;
				}
				return this._objectToken;
			}
		}

		// Token: 0x17000697 RID: 1687
		// (get) Token: 0x06001C81 RID: 7297 RVA: 0x003318F1 File Offset: 0x0032FAF1
		public virtual string TableString
		{
			get
			{
				if (this._objectToken == null)
				{
					return "";
				}
				return this._objectToken.ToString();
			}
		}

		// Token: 0x17000698 RID: 1688
		// (get) Token: 0x06001C82 RID: 7298 RVA: 0x0033190C File Offset: 0x0032FB0C
		public virtual string ObjectString
		{
			get
			{
				if (this._objectToken != null)
				{
					return this._objectToken.astext;
				}
				return null;
			}
		}

		// Token: 0x17000699 RID: 1689
		// (get) Token: 0x06001C83 RID: 7299 RVA: 0x00331923 File Offset: 0x0032FB23
		public virtual string PartString
		{
			get
			{
				if (this._partToken != null)
				{
					return this._partToken.astext;
				}
				return null;
			}
		}

		// Token: 0x06001C84 RID: 7300 RVA: 0x0033193A File Offset: 0x0032FB3A
		private void parseObjectName()
		{
			this.parseTablename();
		}

		// Token: 0x06001C85 RID: 7301 RVA: 0x00331944 File Offset: 0x0032FB44
		private void parseTablename()
		{
			if (this.databaseToken != null)
			{
				this.serverToken = this.databaseToken;
				this.serverToken.DbObjType = EDbObjectType.server;
			}
			if (this._schemaToken != null)
			{
				this.databaseToken = this._schemaToken;
				this.databaseToken.DbObjType = EDbObjectType.database;
			}
			if (this._objectToken != null)
			{
				this._schemaToken = this._objectToken;
				this._schemaToken.DbObjType = EDbObjectType.schema;
			}
			this._objectToken = this._partToken;
			this._partToken = null;
		}

		// Token: 0x06001C86 RID: 7302 RVA: 0x003319C6 File Offset: 0x0032FBC6
		private void parseFunctionName()
		{
			this.parseTablename();
		}

		// Token: 0x06001C87 RID: 7303 RVA: 0x003319CE File Offset: 0x0032FBCE
		private void parseColumnMethodName()
		{
			this.objectType = 11;
			this.methodToken = this._objectToken;
			this._partToken = this._schemaToken;
			this._objectToken = null;
			this._schemaToken = null;
		}

		// Token: 0x06001C88 RID: 7304 RVA: 0x003319FE File Offset: 0x0032FBFE
		private void parseColumnName()
		{
		}

		// Token: 0x06001C89 RID: 7305 RVA: 0x00331A00 File Offset: 0x0032FC00
		public override void init(object arg1)
		{
			this._partToken = (TSourceToken)arg1;
			base.startToken = this._partToken;
			base.endToken = this._partToken;
		}

		// Token: 0x06001C8A RID: 7306 RVA: 0x00331A28 File Offset: 0x0032FC28
		public override void init(object arg1, object arg2)
		{
			this._objectToken = (TSourceToken)arg1;
			this._partToken = (TSourceToken)arg2;
			if (this._objectToken != null)
			{
				base.startToken = this._objectToken;
			}
			else
			{
				base.startToken = this._partToken;
			}
			if (this._partToken != null)
			{
				base.endToken = this._partToken;
				return;
			}
			base.endToken = this._objectToken;
		}

		// Token: 0x06001C8B RID: 7307 RVA: 0x00331A90 File Offset: 0x0032FC90
		public override void init(object arg1, object arg2, object arg3)
		{
			this._schemaToken = (TSourceToken)arg1;
			this._objectToken = (TSourceToken)arg2;
			this._partToken = (TSourceToken)arg3;
			base.startToken = this._schemaToken;
			base.endToken = this._partToken;
			if (this._schemaToken != null)
			{
				this._schemaToken.DbObjType = EDbObjectType.schema;
			}
		}

		// Token: 0x06001C8C RID: 7308 RVA: 0x00331AF0 File Offset: 0x0032FCF0
		public override void init(object arg1, object arg2, object arg3, object arg4)
		{
			this.databaseToken = (TSourceToken)arg1;
			this._schemaToken = (TSourceToken)arg2;
			this._objectToken = (TSourceToken)arg3;
			this._partToken = (TSourceToken)arg4;
			base.startToken = this.databaseToken;
			base.endToken = this._partToken;
			if (this.databaseToken != null)
			{
				this.databaseToken.DbObjType = EDbObjectType.database;
			}
			if (this._schemaToken != null)
			{
				this._schemaToken.DbObjType = EDbObjectType.schema;
			}
		}

		// Token: 0x06001C8D RID: 7309 RVA: 0x00331B70 File Offset: 0x0032FD70
		public override void init(object arg1, object arg2, object arg3, object arg4, object arg5)
		{
			this.serverToken = (TSourceToken)arg1;
			this.databaseToken = (TSourceToken)arg2;
			this._schemaToken = (TSourceToken)arg3;
			this._objectToken = (TSourceToken)arg4;
			this._partToken = (TSourceToken)arg5;
			base.startToken = this.serverToken;
			base.endToken = this._partToken;
			if (this.serverToken != null)
			{
				this.serverToken.DbObjType = EDbObjectType.server;
			}
			if (this.databaseToken != null)
			{
				this.databaseToken.DbObjType = EDbObjectType.database;
			}
			if (this._schemaToken != null)
			{
				this._schemaToken.DbObjType = EDbObjectType.schema;
			}
		}

		// Token: 0x06001C8E RID: 7310 RVA: 0x00331C14 File Offset: 0x0032FE14
		public override void init(object arg1, object arg2, object arg3, object arg4, object arg5, object arg6)
		{
			this.serverToken = (TSourceToken)arg1;
			this.databaseToken = (TSourceToken)arg2;
			this._schemaToken = (TSourceToken)arg3;
			this._objectToken = (TSourceToken)arg4;
			this._partToken = (TSourceToken)arg5;
			this.propertyToken = (TSourceToken)arg6;
			base.startToken = this.serverToken;
			base.endToken = this.propertyToken;
			if (this.serverToken != null)
			{
				this.serverToken.DbObjType = EDbObjectType.server;
			}
			if (this.databaseToken != null)
			{
				this.databaseToken.DbObjType = EDbObjectType.database;
			}
			if (this._schemaToken != null)
			{
				this._schemaToken.DbObjType = EDbObjectType.schema;
			}
		}

		// Token: 0x1700069A RID: 1690
		// (get) Token: 0x06001C8F RID: 7311 RVA: 0x00331CC4 File Offset: 0x0032FEC4
		public override long ColumnNo
		{
			get
			{
				long result = -1L;
				if (this._partToken != null)
				{
					result = this._partToken.columnNo;
				}
				if (this._objectToken != null)
				{
					result = this._objectToken.columnNo;
				}
				if (this._schemaToken != null)
				{
					result = this._schemaToken.columnNo;
				}
				if (this.databaseToken != null)
				{
					result = this.databaseToken.columnNo;
				}
				if (this.serverToken != null)
				{
					result = this.serverToken.columnNo;
				}
				return result;
			}
		}

		// Token: 0x1700069B RID: 1691
		// (get) Token: 0x06001C90 RID: 7312 RVA: 0x00331D3C File Offset: 0x0032FF3C
		public override long LineNo
		{
			get
			{
				long result = -1L;
				if (this._partToken != null)
				{
					result = this._partToken.lineNo;
				}
				if (this._objectToken != null)
				{
					result = this._objectToken.lineNo;
				}
				if (this._schemaToken != null)
				{
					result = this._schemaToken.lineNo;
				}
				if (this.databaseToken != null)
				{
					result = this.databaseToken.lineNo;
				}
				if (this.serverToken != null)
				{
					result = this.serverToken.lineNo;
				}
				return result;
			}
		}

		// Token: 0x1700069C RID: 1692
		// (get) Token: 0x06001C91 RID: 7313 RVA: 0x00331DB1 File Offset: 0x0032FFB1
		public virtual TObjectNameList ReferencedObjects
		{
			get
			{
				if (this.referencedObjects == null)
				{
					this.referencedObjects = new TObjectNameList();
				}
				return this.referencedObjects;
			}
		}

		// Token: 0x1700069D RID: 1693
		// (get) Token: 0x06001C92 RID: 7314 RVA: 0x00331DCC File Offset: 0x0032FFCC
		public virtual string ColumnNameOnly
		{
			get
			{
				if (this.PartToken == null)
				{
					return "";
				}
				return this.PartToken.ToString();
			}
		}

		// Token: 0x06001C93 RID: 7315 RVA: 0x00331DE7 File Offset: 0x0032FFE7
		public override void accept(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x06001C94 RID: 7316 RVA: 0x00331DF7 File Offset: 0x0032FFF7
		public override void acceptChildren(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x1700069E RID: 1694
		// (get) Token: 0x06001C96 RID: 7318 RVA: 0x00331E10 File Offset: 0x00330010
		// (set) Token: 0x06001C95 RID: 7317 RVA: 0x00331E07 File Offset: 0x00330007
		public virtual TSourceToken SortType
		{
			get
			{
				return this.sortType;
			}
			set
			{
				this.sortType = value;
			}
		}

		// Token: 0x1700069F RID: 1695
		// (get) Token: 0x06001C97 RID: 7319 RVA: 0x00331E18 File Offset: 0x00330018
		public virtual TSourceToken ColumnToken
		{
			get
			{
				TSourceToken result = null;
				if (this.ObjectType == 1)
				{
					result = this.PartToken;
				}
				return result;
			}
		}

		// Token: 0x06001C98 RID: 7320 RVA: 0x00331E38 File Offset: 0x00330038
		public virtual bool isAttributeNameInObjectName(TSourceToken leftparen, TSourceToken rightparen)
		{
			bool result = false;
			if (this._partToken == null || this._objectToken == null)
			{
				return result;
			}
			this.objectType = 1;
			this.attributes = new TObjectNameList();
			TObjectName tobjectName = new TObjectName();
			tobjectName.objectType = 26;
			tobjectName.init(this._partToken);
			tobjectName.endToken = rightparen;
			this.attributes.addObjectName(tobjectName);
			this._partToken = this._objectToken;
			if (this._schemaToken != null)
			{
				this._objectToken = this._schemaToken;
			}
			return true;
		}

		// Token: 0x06001C99 RID: 7321 RVA: 0x00331EB9 File Offset: 0x003300B9
		public virtual void mergeObjectName(TObjectName objectName)
		{
			this._objectToken = this._partToken;
			this._partToken = objectName.PartToken;
			base.startToken = this._objectToken;
			base.endToken = this._partToken;
		}

		// Token: 0x06001C9A RID: 7322 RVA: 0x00331EEB File Offset: 0x003300EB
		public virtual void mergeObjectName(TObjectName objectName, TObjectName objectName2)
		{
			this._schemaToken = this._partToken;
			this._objectToken = objectName.PartToken;
			this._partToken = objectName2.PartToken;
			base.startToken = this._schemaToken;
			base.endToken = this._partToken;
		}

		// Token: 0x06001C9B RID: 7323 RVA: 0x00331F2C File Offset: 0x0033012C
		public virtual void appendObjectName(TObjectName objectName)
		{
			if (this.databaseToken != null)
			{
				this.serverToken = this.databaseToken;
			}
			if (this._schemaToken != null)
			{
				this.databaseToken = this._schemaToken;
			}
			if (this._objectToken != null)
			{
				this._schemaToken = this._objectToken;
			}
			this._objectToken = this._partToken;
			this._partToken = objectName.PartToken;
		}

		// Token: 0x170006A0 RID: 1696
		// (get) Token: 0x06001C9D RID: 7325 RVA: 0x00331F96 File Offset: 0x00330196
		// (set) Token: 0x06001C9C RID: 7324 RVA: 0x00331F8D File Offset: 0x0033018D
		public virtual TSourceToken CommentString
		{
			get
			{
				return this.commentString;
			}
			set
			{
				this.commentString = value;
			}
		}

		// Token: 0x06001C9E RID: 7326 RVA: 0x00331F9E File Offset: 0x0033019E
		public string coordinate()
		{
			return this.getStartToken().lineNo.ToString() + "," + this.getEndToken().columnNo.ToString();
		}

		// Token: 0x04001A36 RID: 6710
		private TColumnDefinition _linkedColumnDef;

		// Token: 0x04001A37 RID: 6711
		private EQuoteType quoteType;

		// Token: 0x04001A38 RID: 6712
		public int searchLevel;

		// Token: 0x04001A39 RID: 6713
		private TResultColumn sourceColumn;

		// Token: 0x04001A3A RID: 6714
		private TTable sourceTable;

		// Token: 0x04001A3B RID: 6715
		public const int ttobjNotAObject = -1;

		// Token: 0x04001A3C RID: 6716
		public const int ttobjUnknown = 0;

		// Token: 0x04001A3D RID: 6717
		public const int ttobjColumn = 1;

		// Token: 0x04001A3E RID: 6718
		public const int ttobjColumnAlias = 2;

		// Token: 0x04001A3F RID: 6719
		public const int ttobjTable = 3;

		// Token: 0x04001A40 RID: 6720
		public const int ttObjTableAlias = 4;

		// Token: 0x04001A41 RID: 6721
		public const int ttobjTableCTE = 5;

		// Token: 0x04001A42 RID: 6722
		public const int ttobjTableTemp = 6;

		// Token: 0x04001A43 RID: 6723
		public const int ttobjTablePivot = 7;

		// Token: 0x04001A44 RID: 6724
		public const int ttobjTableVar = 8;

		// Token: 0x04001A45 RID: 6725
		public const int ttobjParameter = 9;

		// Token: 0x04001A46 RID: 6726
		public const int ttobjVariable = 10;

		// Token: 0x04001A47 RID: 6727
		public const int ttobjColumnMethod = 11;

		// Token: 0x04001A48 RID: 6728
		public const int ttobjProcedureName = 12;

		// Token: 0x04001A49 RID: 6729
		public const int ttobjFunctionName = 13;

		// Token: 0x04001A4A RID: 6730
		public const int ttobjLabelName = 14;

		// Token: 0x04001A4B RID: 6731
		public const int ttobjIndexName = 15;

		// Token: 0x04001A4C RID: 6732
		public const int ttobjMaterializedViewName = 16;

		// Token: 0x04001A4D RID: 6733
		public const int ttobjCursorName = 17;

		// Token: 0x04001A4E RID: 6734
		public const int ttobjViewName = 18;

		// Token: 0x04001A4F RID: 6735
		public const int ttobjConstraintName = 19;

		// Token: 0x04001A50 RID: 6736
		public const int ttobjPropertyName = 20;

		// Token: 0x04001A51 RID: 6737
		public const int ttobjTransactionName = 21;

		// Token: 0x04001A52 RID: 6738
		public const int ttobjDatabaseName = 22;

		// Token: 0x04001A53 RID: 6739
		public const int ttobjStringConstant = 23;

		// Token: 0x04001A54 RID: 6740
		public const int ttobjTrigger = 24;

		// Token: 0x04001A55 RID: 6741
		public const int ttobjAliasName = 25;

		// Token: 0x04001A56 RID: 6742
		public const int ttobjAttribute = 26;

		// Token: 0x04001A57 RID: 6743
		public const int ttobjTypeName = 27;

		// Token: 0x04001A58 RID: 6744
		public const int ttobjPackage = 28;

		// Token: 0x04001A59 RID: 6745
		public const int ttobjSequence = 29;

		// Token: 0x04001A5A RID: 6746
		public const int ttobjDatatype = 30;

		// Token: 0x04001A5B RID: 6747
		public const int ttobjSchemaName = 31;

		// Token: 0x04001A5C RID: 6748
		public const int ttobjServerName = 32;

		// Token: 0x04001A5D RID: 6749
		public const int ttobjOperator = 40;

		// Token: 0x04001A5E RID: 6750
		public const int ttobjIndexType = 42;

		// Token: 0x04001A5F RID: 6751
		public const int ttobjMaterializedView = 44;

		// Token: 0x04001A60 RID: 6752
		public const int ttobjMiningModel = 46;

		// Token: 0x04001A61 RID: 6753
		public const int ttobjFieldName = 51;

		// Token: 0x04001A62 RID: 6754
		public const int ttobjPositionalParameters = 61;

		// Token: 0x04001A63 RID: 6755
		public const int ttObjOracleHint = 70;

		// Token: 0x04001A64 RID: 6756
		public const int ttObjLibrary = 72;

		// Token: 0x04001A65 RID: 6757
		public const int ttobjMixed = 100;

		// Token: 0x04001A66 RID: 6758
		private int objectType;

		// Token: 0x04001A67 RID: 6759
		private TObjectNameList attributes;

		// Token: 0x04001A68 RID: 6760
		private bool subscripts;

		// Token: 0x04001A69 RID: 6761
		private TIndirection _indirection;

		// Token: 0x04001A6A RID: 6762
		private bool tableDetermined = true;

		// Token: 0x04001A6B RID: 6763
		private EDbObjectType _dbObjectType;

		// Token: 0x04001A6C RID: 6764
		private TSourceToken serverToken;

		// Token: 0x04001A6D RID: 6765
		private TSourceToken databaseToken;

		// Token: 0x04001A6E RID: 6766
		private TSourceToken _schemaToken;

		// Token: 0x04001A6F RID: 6767
		private TSourceToken _objectToken;

		// Token: 0x04001A70 RID: 6768
		private TSourceToken _partToken;

		// Token: 0x04001A71 RID: 6769
		private TSourceToken propertyToken;

		// Token: 0x04001A72 RID: 6770
		private TSourceToken methodToken;

		// Token: 0x04001A73 RID: 6771
		private TSourceToken atsign;

		// Token: 0x04001A74 RID: 6772
		private TObjectName dblink;

		// Token: 0x04001A75 RID: 6773
		private ESqlClause location;

		// Token: 0x04001A76 RID: 6774
		private TSourceToken exclamationmark;

		// Token: 0x04001A77 RID: 6775
		private bool? isParsed = new bool?(false);

		// Token: 0x04001A78 RID: 6776
		private TObjectNameList referencedObjects;

		// Token: 0x04001A79 RID: 6777
		private TSourceToken sortType;

		// Token: 0x04001A7A RID: 6778
		private TSourceToken commentString;
	}
}
